<!DOCTYPE html>
<html lang="en-US">
  <head>
    <meta charset="utf-8">
    <meta name="viewport" content="width=device-width,initial-scale=1">
    <title>我从导师身上学到了什么？ | 鱼皮的编程宝典</title>
    <meta name="generator" content="VuePress 1.9.10">
    <link rel="icon" href="/favicon.ico">
    <script>
        var _hmt = _hmt || [];
        (function() {
          var hm = document.createElement("script");
          hm.src = "https://hm.baidu.com/hm.js?2675818a983a3131404cee835018f016";
          var s = document.getElementsByTagName("script")[0]; 
          s.parentNode.insertBefore(hm, s);
        })();
      </script>
    <meta name="description" content="贴心的编程学习路线，全面的编程知识百科">
    <meta property="article:modified_time" content="2023-11-11T12:17:47.000Z">
    <meta property="og:site_name" content="鱼皮的编程宝典">
    <meta property="og:title" content="我从导师身上学到了什么？">
    <meta property="og:type" content="article">
    <meta property="og:url" content="https://codefather.cn/%E6%88%91%E4%BB%8E%E5%AF%BC%E5%B8%88%E8%BA%AB%E4%B8%8A%E5%AD%A6%E5%88%B0%E4%BA%86%E4%BB%80%E4%B9%88/">
    <meta name="twitter:title" content="我从导师身上学到了什么？">
    <meta name="twitter:url" content="https://codefather.cn/%E6%88%91%E4%BB%8E%E5%AF%BC%E5%B8%88%E8%BA%AB%E4%B8%8A%E5%AD%A6%E5%88%B0%E4%BA%86%E4%BB%80%E4%B9%88/">
    <meta name="twitter:card" content="summary_large_image">
    <meta name="twitter:label1" content="Written by">
    <meta name="twitter:label2" content="Filed under">
    <meta name="twitter:data2" content="程序员, 编程, 计算机">
    <meta property="article:tag" content="程序员">
    <meta name="keywords" content="程序员鱼皮, 编程学习路线, 编程知识百科, Java, 编程导航, 前端, 开发, 编程分享, 项目, IT, 求职, 面经">
    
    <link rel="preload" href="/assets/css/0.styles.40c15e22.css" as="style"><link rel="preload" href="/assets/js/app.12ab4756.js" as="script"><link rel="preload" href="/assets/js/2.fd06b53e.js" as="script"><link rel="preload" href="/assets/js/517.289738f1.js" as="script"><link rel="prefetch" href="/assets/js/1.17ea1209.js"><link rel="prefetch" href="/assets/js/10.d9532d8f.js"><link rel="prefetch" href="/assets/js/100.064ea126.js"><link rel="prefetch" href="/assets/js/101.d64c5b33.js"><link rel="prefetch" href="/assets/js/102.5e29a62c.js"><link rel="prefetch" href="/assets/js/103.59ad6cd7.js"><link rel="prefetch" href="/assets/js/104.ae4763e8.js"><link rel="prefetch" href="/assets/js/105.2a9124be.js"><link rel="prefetch" href="/assets/js/106.529bca07.js"><link rel="prefetch" href="/assets/js/107.c8671a0d.js"><link rel="prefetch" href="/assets/js/108.55c93c64.js"><link rel="prefetch" href="/assets/js/109.7d1efa54.js"><link rel="prefetch" href="/assets/js/11.2f89b5eb.js"><link rel="prefetch" href="/assets/js/110.0caecbf5.js"><link rel="prefetch" href="/assets/js/111.a2aeae49.js"><link rel="prefetch" href="/assets/js/112.eb7ceda5.js"><link rel="prefetch" href="/assets/js/113.f304408d.js"><link rel="prefetch" href="/assets/js/114.988c637f.js"><link rel="prefetch" href="/assets/js/115.bfdeed31.js"><link rel="prefetch" href="/assets/js/116.a47b8c53.js"><link rel="prefetch" href="/assets/js/117.2e1e8250.js"><link rel="prefetch" href="/assets/js/118.758ce408.js"><link rel="prefetch" href="/assets/js/119.73d9e688.js"><link rel="prefetch" href="/assets/js/12.53aaa509.js"><link rel="prefetch" href="/assets/js/120.202a8b2e.js"><link rel="prefetch" href="/assets/js/121.ca91d59a.js"><link rel="prefetch" href="/assets/js/122.8804c0dd.js"><link rel="prefetch" href="/assets/js/123.ceada225.js"><link rel="prefetch" href="/assets/js/124.4b2718b7.js"><link rel="prefetch" href="/assets/js/125.72134235.js"><link rel="prefetch" href="/assets/js/126.167b162c.js"><link rel="prefetch" href="/assets/js/127.f8139c17.js"><link rel="prefetch" href="/assets/js/128.da64a377.js"><link rel="prefetch" href="/assets/js/129.c07963b1.js"><link rel="prefetch" href="/assets/js/13.52940164.js"><link rel="prefetch" href="/assets/js/130.f66fc8bb.js"><link rel="prefetch" href="/assets/js/131.a913c7dd.js"><link rel="prefetch" href="/assets/js/132.ea648654.js"><link rel="prefetch" href="/assets/js/133.074ca70e.js"><link rel="prefetch" href="/assets/js/134.dc79ddd8.js"><link rel="prefetch" href="/assets/js/135.c4516208.js"><link rel="prefetch" href="/assets/js/136.2546baf7.js"><link rel="prefetch" href="/assets/js/137.56454fc6.js"><link rel="prefetch" href="/assets/js/138.bdb002bf.js"><link rel="prefetch" href="/assets/js/139.40a2f9b5.js"><link rel="prefetch" href="/assets/js/14.ade1e74d.js"><link rel="prefetch" href="/assets/js/140.06b20427.js"><link rel="prefetch" href="/assets/js/141.8dd992e3.js"><link rel="prefetch" href="/assets/js/142.d9305485.js"><link rel="prefetch" href="/assets/js/143.41bf907e.js"><link rel="prefetch" href="/assets/js/144.c138960c.js"><link rel="prefetch" href="/assets/js/145.fc5b38c8.js"><link rel="prefetch" href="/assets/js/146.c9166b70.js"><link rel="prefetch" href="/assets/js/147.c31d8a01.js"><link rel="prefetch" href="/assets/js/148.5c0534ca.js"><link rel="prefetch" href="/assets/js/149.d2355ea2.js"><link rel="prefetch" href="/assets/js/15.970a8ca5.js"><link rel="prefetch" href="/assets/js/150.c1644898.js"><link rel="prefetch" href="/assets/js/151.b6e4adf0.js"><link rel="prefetch" href="/assets/js/152.7a5071aa.js"><link rel="prefetch" href="/assets/js/153.31abbc68.js"><link rel="prefetch" href="/assets/js/154.9c6bb079.js"><link rel="prefetch" href="/assets/js/155.e5506a40.js"><link rel="prefetch" href="/assets/js/156.992dab50.js"><link rel="prefetch" href="/assets/js/157.12a6ee84.js"><link rel="prefetch" href="/assets/js/158.84dc1045.js"><link rel="prefetch" href="/assets/js/159.fd2022b1.js"><link rel="prefetch" href="/assets/js/16.ff971500.js"><link rel="prefetch" href="/assets/js/160.8d8889cd.js"><link rel="prefetch" href="/assets/js/161.31797def.js"><link rel="prefetch" href="/assets/js/162.bfae7a75.js"><link rel="prefetch" href="/assets/js/163.e5e8094d.js"><link rel="prefetch" href="/assets/js/164.870f212c.js"><link rel="prefetch" href="/assets/js/165.8da20a31.js"><link rel="prefetch" href="/assets/js/166.950a187d.js"><link rel="prefetch" href="/assets/js/167.fd042c52.js"><link rel="prefetch" href="/assets/js/168.7d9f058d.js"><link rel="prefetch" href="/assets/js/169.205df80e.js"><link rel="prefetch" href="/assets/js/17.4b045b26.js"><link rel="prefetch" href="/assets/js/170.270108a3.js"><link rel="prefetch" href="/assets/js/171.9f03d27d.js"><link rel="prefetch" href="/assets/js/172.1882bac7.js"><link rel="prefetch" href="/assets/js/173.fc1fe7d4.js"><link rel="prefetch" href="/assets/js/174.d77c927b.js"><link rel="prefetch" href="/assets/js/175.019b9e83.js"><link rel="prefetch" href="/assets/js/176.5ce31bd8.js"><link rel="prefetch" href="/assets/js/177.9a2006f2.js"><link rel="prefetch" href="/assets/js/178.88265ac1.js"><link rel="prefetch" href="/assets/js/179.3205ce07.js"><link rel="prefetch" href="/assets/js/18.1cdd0514.js"><link rel="prefetch" href="/assets/js/180.2ff51f44.js"><link rel="prefetch" href="/assets/js/181.f792ce97.js"><link rel="prefetch" href="/assets/js/182.103328e1.js"><link rel="prefetch" href="/assets/js/183.40fde303.js"><link rel="prefetch" href="/assets/js/184.1f36ac78.js"><link rel="prefetch" href="/assets/js/185.cf3b1c00.js"><link rel="prefetch" href="/assets/js/186.f7981399.js"><link rel="prefetch" href="/assets/js/187.20fe296d.js"><link rel="prefetch" href="/assets/js/188.7b004fea.js"><link rel="prefetch" href="/assets/js/189.599ca2d9.js"><link rel="prefetch" href="/assets/js/19.5740e4d6.js"><link rel="prefetch" href="/assets/js/190.14087c07.js"><link rel="prefetch" href="/assets/js/191.b0f73f6d.js"><link rel="prefetch" href="/assets/js/192.9d171669.js"><link rel="prefetch" href="/assets/js/193.00975585.js"><link rel="prefetch" href="/assets/js/194.2c7c43b4.js"><link rel="prefetch" href="/assets/js/195.ff126254.js"><link rel="prefetch" href="/assets/js/196.6546ae1c.js"><link rel="prefetch" href="/assets/js/197.eedb67bb.js"><link rel="prefetch" href="/assets/js/198.acdcc22c.js"><link rel="prefetch" href="/assets/js/199.7993a6b2.js"><link rel="prefetch" href="/assets/js/20.8885a4fa.js"><link rel="prefetch" href="/assets/js/200.52f08765.js"><link rel="prefetch" href="/assets/js/201.b85ab10b.js"><link rel="prefetch" href="/assets/js/202.ccec1c85.js"><link rel="prefetch" href="/assets/js/203.3f50a6ed.js"><link rel="prefetch" href="/assets/js/204.f28b803b.js"><link rel="prefetch" href="/assets/js/205.c51c53fd.js"><link rel="prefetch" href="/assets/js/206.ba0aa8f6.js"><link rel="prefetch" href="/assets/js/207.0dce311a.js"><link rel="prefetch" href="/assets/js/208.0ea629a6.js"><link rel="prefetch" href="/assets/js/209.f48c3e71.js"><link rel="prefetch" href="/assets/js/21.0bb62db4.js"><link rel="prefetch" href="/assets/js/210.689db8f2.js"><link rel="prefetch" href="/assets/js/211.72bc0f1f.js"><link rel="prefetch" href="/assets/js/212.456135bd.js"><link rel="prefetch" href="/assets/js/213.d0ea50fc.js"><link rel="prefetch" href="/assets/js/214.1400da91.js"><link rel="prefetch" href="/assets/js/215.aeef3e5d.js"><link rel="prefetch" href="/assets/js/216.a60215af.js"><link rel="prefetch" href="/assets/js/217.d6cd8b69.js"><link rel="prefetch" href="/assets/js/218.1bd500fc.js"><link rel="prefetch" href="/assets/js/219.20faf611.js"><link rel="prefetch" href="/assets/js/22.3e8347a6.js"><link rel="prefetch" href="/assets/js/220.6714179b.js"><link rel="prefetch" href="/assets/js/221.fb5b643d.js"><link rel="prefetch" href="/assets/js/222.d96272e5.js"><link rel="prefetch" href="/assets/js/223.4cb7dc3d.js"><link rel="prefetch" href="/assets/js/224.500d94cc.js"><link rel="prefetch" href="/assets/js/225.d006c34e.js"><link rel="prefetch" href="/assets/js/226.73612150.js"><link rel="prefetch" href="/assets/js/227.b02db9d1.js"><link rel="prefetch" href="/assets/js/228.aad43ff2.js"><link rel="prefetch" href="/assets/js/229.65340802.js"><link rel="prefetch" href="/assets/js/23.ceb5a5ff.js"><link rel="prefetch" href="/assets/js/230.97cab104.js"><link rel="prefetch" href="/assets/js/231.8415349a.js"><link rel="prefetch" href="/assets/js/232.db6d2697.js"><link rel="prefetch" href="/assets/js/233.723d05b1.js"><link rel="prefetch" href="/assets/js/234.26ed5e94.js"><link rel="prefetch" href="/assets/js/235.a586122b.js"><link rel="prefetch" href="/assets/js/236.f802bda8.js"><link rel="prefetch" href="/assets/js/237.cc8767ad.js"><link rel="prefetch" href="/assets/js/238.6485459e.js"><link rel="prefetch" href="/assets/js/239.9fbf3a55.js"><link rel="prefetch" href="/assets/js/24.07267ac6.js"><link rel="prefetch" href="/assets/js/240.1188f244.js"><link rel="prefetch" href="/assets/js/241.cbfb154d.js"><link rel="prefetch" href="/assets/js/242.352cea5a.js"><link rel="prefetch" href="/assets/js/243.07947e1c.js"><link rel="prefetch" href="/assets/js/244.f5b26fa9.js"><link rel="prefetch" href="/assets/js/245.c6030e32.js"><link rel="prefetch" href="/assets/js/246.d3fe99f7.js"><link rel="prefetch" href="/assets/js/247.185ae95d.js"><link rel="prefetch" href="/assets/js/248.a5f1548c.js"><link rel="prefetch" href="/assets/js/249.19691113.js"><link rel="prefetch" href="/assets/js/25.15e1f641.js"><link rel="prefetch" href="/assets/js/250.72fa1d33.js"><link rel="prefetch" href="/assets/js/251.bedd56f7.js"><link rel="prefetch" href="/assets/js/252.32bbcc8b.js"><link rel="prefetch" href="/assets/js/253.b59e5846.js"><link rel="prefetch" href="/assets/js/254.c0e37e1a.js"><link rel="prefetch" href="/assets/js/255.850da3cc.js"><link rel="prefetch" href="/assets/js/256.952d9817.js"><link rel="prefetch" href="/assets/js/257.88667bb8.js"><link rel="prefetch" href="/assets/js/258.c5873c28.js"><link rel="prefetch" href="/assets/js/259.6ae1dcbc.js"><link rel="prefetch" href="/assets/js/26.35b2bbdc.js"><link rel="prefetch" href="/assets/js/260.cb940cc3.js"><link rel="prefetch" href="/assets/js/261.0686c3e9.js"><link rel="prefetch" href="/assets/js/262.d0719839.js"><link rel="prefetch" href="/assets/js/263.ae83ebc1.js"><link rel="prefetch" href="/assets/js/264.209ad8a3.js"><link rel="prefetch" href="/assets/js/265.be8d1ee8.js"><link rel="prefetch" href="/assets/js/266.c51bceaa.js"><link rel="prefetch" href="/assets/js/267.fe8af48a.js"><link rel="prefetch" href="/assets/js/268.e18ed861.js"><link rel="prefetch" href="/assets/js/269.7126031e.js"><link rel="prefetch" href="/assets/js/27.270fcb06.js"><link rel="prefetch" href="/assets/js/270.89ead106.js"><link rel="prefetch" href="/assets/js/271.0643d07a.js"><link rel="prefetch" href="/assets/js/272.32a8e4b0.js"><link rel="prefetch" href="/assets/js/273.9881da47.js"><link rel="prefetch" href="/assets/js/274.2de022ea.js"><link rel="prefetch" href="/assets/js/275.d9a4fe99.js"><link rel="prefetch" href="/assets/js/276.d33de2e9.js"><link rel="prefetch" href="/assets/js/277.1ec367ab.js"><link rel="prefetch" href="/assets/js/278.66ab7c11.js"><link rel="prefetch" href="/assets/js/279.ff51cd15.js"><link rel="prefetch" href="/assets/js/28.ef3f6db2.js"><link rel="prefetch" href="/assets/js/280.ef45ed5f.js"><link rel="prefetch" href="/assets/js/281.87f26b81.js"><link rel="prefetch" href="/assets/js/282.c8ef594b.js"><link rel="prefetch" href="/assets/js/283.15643091.js"><link rel="prefetch" href="/assets/js/284.c4f25b2e.js"><link rel="prefetch" href="/assets/js/285.2d16e4b6.js"><link rel="prefetch" href="/assets/js/286.44eba266.js"><link rel="prefetch" href="/assets/js/287.7613e62f.js"><link rel="prefetch" href="/assets/js/288.b9546d55.js"><link rel="prefetch" href="/assets/js/289.125f85d8.js"><link rel="prefetch" href="/assets/js/29.177558be.js"><link rel="prefetch" href="/assets/js/290.db375797.js"><link rel="prefetch" href="/assets/js/291.90946626.js"><link rel="prefetch" href="/assets/js/292.a4524678.js"><link rel="prefetch" href="/assets/js/293.3ed9b083.js"><link rel="prefetch" href="/assets/js/294.d6c14116.js"><link rel="prefetch" href="/assets/js/295.2b485032.js"><link rel="prefetch" href="/assets/js/296.29d9aa0f.js"><link rel="prefetch" href="/assets/js/297.bfd72435.js"><link rel="prefetch" href="/assets/js/298.fc056989.js"><link rel="prefetch" href="/assets/js/299.0a3f258e.js"><link rel="prefetch" href="/assets/js/3.4dc033c7.js"><link rel="prefetch" href="/assets/js/30.248a229d.js"><link rel="prefetch" href="/assets/js/300.d064d776.js"><link rel="prefetch" href="/assets/js/301.d95b9fc0.js"><link rel="prefetch" href="/assets/js/302.1afa637a.js"><link rel="prefetch" href="/assets/js/303.231beaa8.js"><link rel="prefetch" href="/assets/js/304.05df35d9.js"><link rel="prefetch" href="/assets/js/305.f2d83cf9.js"><link rel="prefetch" href="/assets/js/306.d54f5e5e.js"><link rel="prefetch" href="/assets/js/307.d5df9000.js"><link rel="prefetch" href="/assets/js/308.ef2f52b3.js"><link rel="prefetch" href="/assets/js/309.d1f13319.js"><link rel="prefetch" href="/assets/js/31.32a62b91.js"><link rel="prefetch" href="/assets/js/310.30b84be3.js"><link rel="prefetch" href="/assets/js/311.d79e3145.js"><link rel="prefetch" href="/assets/js/312.58e24f19.js"><link rel="prefetch" href="/assets/js/313.9809a122.js"><link rel="prefetch" href="/assets/js/314.e92e41b1.js"><link rel="prefetch" href="/assets/js/315.8c2fc1d4.js"><link rel="prefetch" href="/assets/js/316.a0904343.js"><link rel="prefetch" href="/assets/js/317.18e42b54.js"><link rel="prefetch" href="/assets/js/318.6b051d27.js"><link rel="prefetch" href="/assets/js/319.513b0197.js"><link rel="prefetch" href="/assets/js/32.23b75afc.js"><link rel="prefetch" href="/assets/js/320.ae91bc36.js"><link rel="prefetch" href="/assets/js/321.a194efea.js"><link rel="prefetch" href="/assets/js/322.8273020e.js"><link rel="prefetch" href="/assets/js/323.d332e08f.js"><link rel="prefetch" href="/assets/js/324.ed867b64.js"><link rel="prefetch" href="/assets/js/325.c43ccf9a.js"><link rel="prefetch" href="/assets/js/326.9497d879.js"><link rel="prefetch" href="/assets/js/327.7f095e40.js"><link rel="prefetch" href="/assets/js/328.cb5c5847.js"><link rel="prefetch" href="/assets/js/329.d36b59f3.js"><link rel="prefetch" href="/assets/js/33.b258b779.js"><link rel="prefetch" href="/assets/js/330.b1a092b9.js"><link rel="prefetch" href="/assets/js/331.ff86566f.js"><link rel="prefetch" href="/assets/js/332.0daafa9f.js"><link rel="prefetch" href="/assets/js/333.b7e50524.js"><link rel="prefetch" href="/assets/js/334.7dcf9f0b.js"><link rel="prefetch" href="/assets/js/335.862c410a.js"><link rel="prefetch" href="/assets/js/336.c6384990.js"><link rel="prefetch" href="/assets/js/337.ab9d5e52.js"><link rel="prefetch" href="/assets/js/338.598ae59e.js"><link rel="prefetch" href="/assets/js/339.9b810ff8.js"><link rel="prefetch" href="/assets/js/34.3bd60f1f.js"><link rel="prefetch" href="/assets/js/340.5609a53c.js"><link rel="prefetch" href="/assets/js/341.969d335a.js"><link rel="prefetch" href="/assets/js/342.43f85dba.js"><link rel="prefetch" href="/assets/js/343.47280ef9.js"><link rel="prefetch" href="/assets/js/344.346ae5fc.js"><link rel="prefetch" href="/assets/js/345.32166361.js"><link rel="prefetch" href="/assets/js/346.86ff128b.js"><link rel="prefetch" href="/assets/js/347.3c5421fe.js"><link rel="prefetch" href="/assets/js/348.95910300.js"><link rel="prefetch" href="/assets/js/349.004158d8.js"><link rel="prefetch" href="/assets/js/35.18e8f66a.js"><link rel="prefetch" href="/assets/js/350.e10b195b.js"><link rel="prefetch" href="/assets/js/351.12f89875.js"><link rel="prefetch" href="/assets/js/352.83957394.js"><link rel="prefetch" href="/assets/js/353.475971b9.js"><link rel="prefetch" href="/assets/js/354.8af7b26b.js"><link rel="prefetch" href="/assets/js/355.85925e24.js"><link rel="prefetch" href="/assets/js/356.1d77cf9c.js"><link rel="prefetch" href="/assets/js/357.b467d481.js"><link rel="prefetch" href="/assets/js/358.ac96f32d.js"><link rel="prefetch" href="/assets/js/359.e048bd10.js"><link rel="prefetch" href="/assets/js/36.a7ae257c.js"><link rel="prefetch" href="/assets/js/360.e9b45545.js"><link rel="prefetch" href="/assets/js/361.ad1bb45b.js"><link rel="prefetch" href="/assets/js/362.4e24a30b.js"><link rel="prefetch" href="/assets/js/363.64f7dad5.js"><link rel="prefetch" href="/assets/js/364.d9e3ebc2.js"><link rel="prefetch" href="/assets/js/365.330e3086.js"><link rel="prefetch" href="/assets/js/366.a6c0afb3.js"><link rel="prefetch" href="/assets/js/367.ffcefa40.js"><link rel="prefetch" href="/assets/js/368.664c8e4d.js"><link rel="prefetch" href="/assets/js/369.67da2dd2.js"><link rel="prefetch" href="/assets/js/37.d709f9a9.js"><link rel="prefetch" href="/assets/js/370.b1791970.js"><link rel="prefetch" href="/assets/js/371.743a461a.js"><link rel="prefetch" href="/assets/js/372.7703ef1b.js"><link rel="prefetch" href="/assets/js/373.17de31f6.js"><link rel="prefetch" href="/assets/js/374.e508be9e.js"><link rel="prefetch" href="/assets/js/375.6e2e9fe3.js"><link rel="prefetch" href="/assets/js/376.8ca3511a.js"><link rel="prefetch" href="/assets/js/377.bfcee39c.js"><link rel="prefetch" href="/assets/js/378.21852b78.js"><link rel="prefetch" href="/assets/js/379.9649c307.js"><link rel="prefetch" href="/assets/js/38.68ca920e.js"><link rel="prefetch" href="/assets/js/380.dadb4418.js"><link rel="prefetch" href="/assets/js/381.a03c993d.js"><link rel="prefetch" href="/assets/js/382.bb7c22c1.js"><link rel="prefetch" href="/assets/js/383.bd68b2e5.js"><link rel="prefetch" href="/assets/js/384.f6dc7457.js"><link rel="prefetch" href="/assets/js/385.14287a91.js"><link rel="prefetch" href="/assets/js/386.a6284ac2.js"><link rel="prefetch" href="/assets/js/387.c51f147a.js"><link rel="prefetch" href="/assets/js/388.06d9651e.js"><link rel="prefetch" href="/assets/js/389.2d85d927.js"><link rel="prefetch" href="/assets/js/39.de850db9.js"><link rel="prefetch" href="/assets/js/390.2397b3e0.js"><link rel="prefetch" href="/assets/js/391.8413aaaf.js"><link rel="prefetch" href="/assets/js/392.00eecaa4.js"><link rel="prefetch" href="/assets/js/393.351dd3fd.js"><link rel="prefetch" href="/assets/js/394.d2cc4a70.js"><link rel="prefetch" href="/assets/js/395.abee64bf.js"><link rel="prefetch" href="/assets/js/396.bc265e6a.js"><link rel="prefetch" href="/assets/js/397.e4a96944.js"><link rel="prefetch" href="/assets/js/398.f0d26b29.js"><link rel="prefetch" href="/assets/js/399.e77c3ddc.js"><link rel="prefetch" href="/assets/js/4.2f502b73.js"><link rel="prefetch" href="/assets/js/40.91635261.js"><link rel="prefetch" href="/assets/js/400.c7eac401.js"><link rel="prefetch" href="/assets/js/401.06092d16.js"><link rel="prefetch" href="/assets/js/402.4e08e496.js"><link rel="prefetch" href="/assets/js/403.deba4c77.js"><link rel="prefetch" href="/assets/js/404.9100e4df.js"><link rel="prefetch" href="/assets/js/405.e9f451e2.js"><link rel="prefetch" href="/assets/js/406.a0da4aa4.js"><link rel="prefetch" href="/assets/js/407.58b2b123.js"><link rel="prefetch" href="/assets/js/408.eb2cde2d.js"><link rel="prefetch" href="/assets/js/409.9041f749.js"><link rel="prefetch" href="/assets/js/41.169a3cfc.js"><link rel="prefetch" href="/assets/js/410.c12f3710.js"><link rel="prefetch" href="/assets/js/411.452cda45.js"><link rel="prefetch" href="/assets/js/412.8691317a.js"><link rel="prefetch" href="/assets/js/413.25a68f21.js"><link rel="prefetch" href="/assets/js/414.7a9699d8.js"><link rel="prefetch" href="/assets/js/415.6e8cdaff.js"><link rel="prefetch" href="/assets/js/416.e8a86529.js"><link rel="prefetch" href="/assets/js/417.28330bde.js"><link rel="prefetch" href="/assets/js/418.2fed8e17.js"><link rel="prefetch" href="/assets/js/419.773032f4.js"><link rel="prefetch" href="/assets/js/42.e17cd061.js"><link rel="prefetch" href="/assets/js/420.56681228.js"><link rel="prefetch" href="/assets/js/421.0d170e13.js"><link rel="prefetch" href="/assets/js/422.fc8c2a11.js"><link rel="prefetch" href="/assets/js/423.e34ea6a6.js"><link rel="prefetch" href="/assets/js/424.20fe8748.js"><link rel="prefetch" href="/assets/js/425.f001b7cd.js"><link rel="prefetch" href="/assets/js/426.a91230ef.js"><link rel="prefetch" href="/assets/js/427.c6c9fe8d.js"><link rel="prefetch" href="/assets/js/428.9d4f5e41.js"><link rel="prefetch" href="/assets/js/429.c81cfd3f.js"><link rel="prefetch" href="/assets/js/43.f88aa667.js"><link rel="prefetch" href="/assets/js/430.eb61372f.js"><link rel="prefetch" href="/assets/js/431.4a25365a.js"><link rel="prefetch" href="/assets/js/432.42fc1bbe.js"><link rel="prefetch" href="/assets/js/433.8e9ac9f0.js"><link rel="prefetch" href="/assets/js/434.fdd0b160.js"><link rel="prefetch" href="/assets/js/435.d6cbac31.js"><link rel="prefetch" href="/assets/js/436.17750ba2.js"><link rel="prefetch" href="/assets/js/437.a1468099.js"><link rel="prefetch" href="/assets/js/438.ac6a45c2.js"><link rel="prefetch" href="/assets/js/439.242ae27a.js"><link rel="prefetch" href="/assets/js/44.3f36e228.js"><link rel="prefetch" href="/assets/js/440.b80b520c.js"><link rel="prefetch" href="/assets/js/441.e51a4bbb.js"><link rel="prefetch" href="/assets/js/442.ab0b3eda.js"><link rel="prefetch" href="/assets/js/443.47e44250.js"><link rel="prefetch" href="/assets/js/444.54c3b425.js"><link rel="prefetch" href="/assets/js/445.e006c12e.js"><link rel="prefetch" href="/assets/js/446.f2b79730.js"><link rel="prefetch" href="/assets/js/447.2509a397.js"><link rel="prefetch" href="/assets/js/448.b7d69dfc.js"><link rel="prefetch" href="/assets/js/449.8a575d9b.js"><link rel="prefetch" href="/assets/js/45.be1455b1.js"><link rel="prefetch" href="/assets/js/450.ad421aeb.js"><link rel="prefetch" href="/assets/js/451.f09912ae.js"><link rel="prefetch" href="/assets/js/452.f528c4ce.js"><link rel="prefetch" href="/assets/js/453.fc4dc0f9.js"><link rel="prefetch" href="/assets/js/454.733c315c.js"><link rel="prefetch" href="/assets/js/455.44fe35b1.js"><link rel="prefetch" href="/assets/js/456.7f650035.js"><link rel="prefetch" href="/assets/js/457.77ebc183.js"><link rel="prefetch" href="/assets/js/458.133078f4.js"><link rel="prefetch" href="/assets/js/459.33728b5e.js"><link rel="prefetch" href="/assets/js/46.5ad74cb5.js"><link rel="prefetch" href="/assets/js/460.6946f564.js"><link rel="prefetch" href="/assets/js/461.6f906c5c.js"><link rel="prefetch" href="/assets/js/462.26eca27e.js"><link rel="prefetch" href="/assets/js/463.e02e5f65.js"><link rel="prefetch" href="/assets/js/464.0df25c63.js"><link rel="prefetch" href="/assets/js/465.80cd249e.js"><link rel="prefetch" href="/assets/js/466.a0921e86.js"><link rel="prefetch" href="/assets/js/467.1bec2b47.js"><link rel="prefetch" href="/assets/js/468.b6fa37c1.js"><link rel="prefetch" href="/assets/js/469.a1d2487e.js"><link rel="prefetch" href="/assets/js/47.03df5d0a.js"><link rel="prefetch" href="/assets/js/470.36a4b9c8.js"><link rel="prefetch" href="/assets/js/471.28895273.js"><link rel="prefetch" href="/assets/js/472.b9fe392f.js"><link rel="prefetch" href="/assets/js/473.a2835d9c.js"><link rel="prefetch" href="/assets/js/474.cd57b37d.js"><link rel="prefetch" href="/assets/js/475.8d5a9792.js"><link rel="prefetch" href="/assets/js/476.f7f3781c.js"><link rel="prefetch" href="/assets/js/477.9b710b04.js"><link rel="prefetch" href="/assets/js/478.46d66687.js"><link rel="prefetch" href="/assets/js/479.e7444705.js"><link rel="prefetch" href="/assets/js/48.48f286ba.js"><link rel="prefetch" href="/assets/js/480.da2b750a.js"><link rel="prefetch" href="/assets/js/481.838a8e04.js"><link rel="prefetch" href="/assets/js/482.02bf8041.js"><link rel="prefetch" href="/assets/js/483.bb29ef2f.js"><link rel="prefetch" href="/assets/js/484.aebb68bd.js"><link rel="prefetch" href="/assets/js/485.a66ab41b.js"><link rel="prefetch" href="/assets/js/486.8df516fb.js"><link rel="prefetch" href="/assets/js/487.86d28130.js"><link rel="prefetch" href="/assets/js/488.0863da70.js"><link rel="prefetch" href="/assets/js/489.5d4d9e88.js"><link rel="prefetch" href="/assets/js/49.1ca52d11.js"><link rel="prefetch" href="/assets/js/490.3fd65d85.js"><link rel="prefetch" href="/assets/js/491.ae3a2f87.js"><link rel="prefetch" href="/assets/js/492.6f54679b.js"><link rel="prefetch" href="/assets/js/493.a594b1f4.js"><link rel="prefetch" href="/assets/js/494.4f03fae1.js"><link rel="prefetch" href="/assets/js/495.ae50b66b.js"><link rel="prefetch" href="/assets/js/496.bc92d835.js"><link rel="prefetch" href="/assets/js/497.eac65251.js"><link rel="prefetch" href="/assets/js/498.1d726726.js"><link rel="prefetch" href="/assets/js/499.01e4f7d1.js"><link rel="prefetch" href="/assets/js/5.7b1f056c.js"><link rel="prefetch" href="/assets/js/50.73732fe2.js"><link rel="prefetch" href="/assets/js/500.062ade4e.js"><link rel="prefetch" href="/assets/js/501.e6a711dc.js"><link rel="prefetch" href="/assets/js/502.c79e28e2.js"><link rel="prefetch" href="/assets/js/503.bf97bce9.js"><link rel="prefetch" href="/assets/js/504.b2784ef0.js"><link rel="prefetch" href="/assets/js/505.0767ba54.js"><link rel="prefetch" href="/assets/js/506.8ae14637.js"><link rel="prefetch" href="/assets/js/507.003e2349.js"><link rel="prefetch" href="/assets/js/508.ecb5e6bd.js"><link rel="prefetch" href="/assets/js/509.b644f44a.js"><link rel="prefetch" href="/assets/js/51.bed7cf61.js"><link rel="prefetch" href="/assets/js/510.b660946f.js"><link rel="prefetch" href="/assets/js/511.cb186c8f.js"><link rel="prefetch" href="/assets/js/512.d176170f.js"><link rel="prefetch" href="/assets/js/513.18a1afa5.js"><link rel="prefetch" href="/assets/js/514.4a33e931.js"><link rel="prefetch" href="/assets/js/515.8496bd4d.js"><link rel="prefetch" href="/assets/js/516.529b9476.js"><link rel="prefetch" href="/assets/js/518.eda39556.js"><link rel="prefetch" href="/assets/js/519.85b42de5.js"><link rel="prefetch" href="/assets/js/52.22a7da62.js"><link rel="prefetch" href="/assets/js/520.8b531775.js"><link rel="prefetch" href="/assets/js/521.8e4b66fb.js"><link rel="prefetch" href="/assets/js/522.050bfc55.js"><link rel="prefetch" href="/assets/js/523.e973f1e0.js"><link rel="prefetch" href="/assets/js/524.fd160738.js"><link rel="prefetch" href="/assets/js/525.5a4bc307.js"><link rel="prefetch" href="/assets/js/526.361bc4fa.js"><link rel="prefetch" href="/assets/js/527.06ee9d73.js"><link rel="prefetch" href="/assets/js/528.22d9b118.js"><link rel="prefetch" href="/assets/js/529.b7592c16.js"><link rel="prefetch" href="/assets/js/53.767f3bbf.js"><link rel="prefetch" href="/assets/js/530.ad96d564.js"><link rel="prefetch" href="/assets/js/531.61905243.js"><link rel="prefetch" href="/assets/js/532.11aebf61.js"><link rel="prefetch" href="/assets/js/533.0cddb226.js"><link rel="prefetch" href="/assets/js/534.d1c9cc36.js"><link rel="prefetch" href="/assets/js/54.d1f9eec8.js"><link rel="prefetch" href="/assets/js/55.aa90e812.js"><link rel="prefetch" href="/assets/js/56.4d7f81f2.js"><link rel="prefetch" href="/assets/js/57.3c540e8d.js"><link rel="prefetch" href="/assets/js/58.fc1c23f2.js"><link rel="prefetch" href="/assets/js/59.c7a7a4c0.js"><link rel="prefetch" href="/assets/js/6.056886f1.js"><link rel="prefetch" href="/assets/js/60.40e590ae.js"><link rel="prefetch" href="/assets/js/61.e400b323.js"><link rel="prefetch" href="/assets/js/62.bbb30ef1.js"><link rel="prefetch" href="/assets/js/63.c31cd2bb.js"><link rel="prefetch" href="/assets/js/64.62321188.js"><link rel="prefetch" href="/assets/js/65.44adc2b3.js"><link rel="prefetch" href="/assets/js/66.b5740d4f.js"><link rel="prefetch" href="/assets/js/67.76c3624c.js"><link rel="prefetch" href="/assets/js/68.6dd982d4.js"><link rel="prefetch" href="/assets/js/69.eb1390ec.js"><link rel="prefetch" href="/assets/js/7.a96cecf9.js"><link rel="prefetch" href="/assets/js/70.8c882bdd.js"><link rel="prefetch" href="/assets/js/71.001c968a.js"><link rel="prefetch" href="/assets/js/72.ae4ca075.js"><link rel="prefetch" href="/assets/js/73.d6ae6a27.js"><link rel="prefetch" href="/assets/js/74.fba60e37.js"><link rel="prefetch" href="/assets/js/75.0b1bf7bf.js"><link rel="prefetch" href="/assets/js/76.ee19d90e.js"><link rel="prefetch" href="/assets/js/77.fe8ac5f0.js"><link rel="prefetch" href="/assets/js/78.ae09432e.js"><link rel="prefetch" href="/assets/js/79.c1b10e2d.js"><link rel="prefetch" href="/assets/js/80.ae809538.js"><link rel="prefetch" href="/assets/js/81.ca11b4c7.js"><link rel="prefetch" href="/assets/js/82.308b98e4.js"><link rel="prefetch" href="/assets/js/83.355d9dde.js"><link rel="prefetch" href="/assets/js/84.a2b61d48.js"><link rel="prefetch" href="/assets/js/85.cf992fda.js"><link rel="prefetch" href="/assets/js/86.f547c7ea.js"><link rel="prefetch" href="/assets/js/87.2b02746a.js"><link rel="prefetch" href="/assets/js/88.e939aad5.js"><link rel="prefetch" href="/assets/js/89.b000c42a.js"><link rel="prefetch" href="/assets/js/90.dadef001.js"><link rel="prefetch" href="/assets/js/91.c0fe2e32.js"><link rel="prefetch" href="/assets/js/92.e09650b9.js"><link rel="prefetch" href="/assets/js/93.427c7280.js"><link rel="prefetch" href="/assets/js/94.90fc5f58.js"><link rel="prefetch" href="/assets/js/95.13d42b3a.js"><link rel="prefetch" href="/assets/js/96.d0a2ea8c.js"><link rel="prefetch" href="/assets/js/97.cc9a0eda.js"><link rel="prefetch" href="/assets/js/98.3c9f1b7e.js"><link rel="prefetch" href="/assets/js/99.0420dcbc.js"><link rel="prefetch" href="/assets/js/vendors~docsearch.33b2b47d.js">
    <link rel="stylesheet" href="/assets/css/0.styles.40c15e22.css">
  </head>
  <body>
    <div id="app" data-server-rendered="true"><div class="theme-container"><header class="navbar"><div class="sidebar-button"><svg xmlns="http://www.w3.org/2000/svg" aria-hidden="true" role="img" viewBox="0 0 448 512" class="icon"><path fill="currentColor" d="M436 124H12c-6.627 0-12-5.373-12-12V80c0-6.627 5.373-12 12-12h424c6.627 0 12 5.373 12 12v32c0 6.627-5.373 12-12 12zm0 160H12c-6.627 0-12-5.373-12-12v-32c0-6.627 5.373-12 12-12h424c6.627 0 12 5.373 12 12v32c0 6.627-5.373 12-12 12zm0 160H12c-6.627 0-12-5.373-12-12v-32c0-6.627 5.373-12 12-12h424c6.627 0 12 5.373 12 12v32c0 6.627-5.373 12-12 12z"></path></svg></div> <a href="/" class="home-link router-link-active"><img src="/logo.png" alt="鱼皮的编程宝典" class="logo"> <span class="site-name can-hide">鱼皮的编程宝典</span></a> <div class="links"><div class="search-box"><input aria-label="Search" autocomplete="off" spellcheck="false" value=""> <!----></div> <nav class="nav-links can-hide"><div class="nav-item"><a href="/学习路线/" class="nav-link">
  学习路线
</a></div><div class="nav-item"><div class="dropdown-wrapper"><button type="button" aria-label="自学之路" class="dropdown-title"><span class="title">自学之路</span> <span class="arrow down"></span></button> <button type="button" aria-label="自学之路" class="mobile-dropdown-title"><span class="title">自学之路</span> <span class="arrow right"></span></button> <ul class="nav-dropdown" style="display:none;"><li class="dropdown-item"><!----> <a href="/自学之路/#大学经历" class="nav-link">
  大学经历
</a></li><li class="dropdown-item"><!----> <a href="/自学之路/#求职经历" class="nav-link">
  求职经历
</a></li><li class="dropdown-item"><!----> <a href="/自学之路/#职场工作" class="nav-link">
  职场工作
</a></li><li class="dropdown-item"><!----> <a href="/自学之路/#创作经历" class="nav-link">
  创作经历
</a></li><li class="dropdown-item"><!----> <a href="/自学之路/#创业经历" class="nav-link">
  创业经历
</a></li><li class="dropdown-item"><!----> <a href="/自学之路/#生活日常" class="nav-link">
  生活日常
</a></li></ul></div></div><div class="nav-item"><div class="dropdown-wrapper"><button type="button" aria-label="编程分享" class="dropdown-title"><span class="title">编程分享</span> <span class="arrow down"></span></button> <button type="button" aria-label="编程分享" class="mobile-dropdown-title"><span class="title">编程分享</span> <span class="arrow right"></span></button> <ul class="nav-dropdown" style="display:none;"><li class="dropdown-item"><!----> <a href="/编程分享/#入门必看-学习路线" class="nav-link">
  入门必看-学习路线
</a></li><li class="dropdown-item"><!----> <a href="/编程分享/#学习指南" class="nav-link">
  学习指南
</a></li><li class="dropdown-item"><!----> <a href="/编程分享/#开发经验" class="nav-link">
  开发经验
</a></li><li class="dropdown-item"><!----> <a href="/编程分享/#求职经验" class="nav-link">
  求职经验
</a></li><li class="dropdown-item"><!----> <a href="/编程分享/#职场经验" class="nav-link">
  职场经验
</a></li><li class="dropdown-item"><!----> <a href="/编程分享/#技术分享" class="nav-link">
  技术分享
</a></li><li class="dropdown-item"><!----> <a href="/编程分享/#实战教程" class="nav-link">
  实战教程
</a></li><li class="dropdown-item"><!----> <a href="/编程分享/#其他" class="nav-link">
  其他
</a></li><li class="dropdown-item"><!----> <a href="/编程分享/#📚-项目教程" class="nav-link">
  项目教程
</a></li><li class="dropdown-item"><!----> <a href="/编程分享/#个人作品" class="nav-link">
  个人作品
</a></li><li class="dropdown-item"><!----> <a href="/编程分享/#🎁-编程资源" class="nav-link">
  编程资源
</a></li><li class="dropdown-item"><!----> <a href="/编程分享/#🌐-科技科普" class="nav-link">
  科技科普
</a></li></ul></div></div><div class="nav-item"><div class="dropdown-wrapper"><button type="button" aria-label="项目实战" class="dropdown-title"><span class="title">项目实战</span> <span class="arrow down"></span></button> <button type="button" aria-label="项目实战" class="mobile-dropdown-title"><span class="title">项目实战</span> <span class="arrow right"></span></button> <ul class="nav-dropdown" style="display:none;"><li class="dropdown-item"><!----> <a href="/项目实战/OJ 判题系统.html" class="nav-link">
  OJ 判题系统
</a></li><li class="dropdown-item"><!----> <a href="/项目实战/智能 BI 平台.html" class="nav-link">
  智能 BI 平台
</a></li><li class="dropdown-item"><!----> <a href="/项目实战/聚合搜索平台.html" class="nav-link">
  聚合搜索平台
</a></li><li class="dropdown-item"><!----> <a href="/项目实战/API 开放平台.html" class="nav-link">
  API 开放平台
</a></li><li class="dropdown-item"><!----> <a href="/项目实战/伙伴匹配系统.html" class="nav-link">
  伙伴匹配系统
</a></li><li class="dropdown-item"><!----> <a href="/项目实战/用户中心项目.html" class="nav-link">
  用户中心项目
</a></li><li class="dropdown-item"><!----> <a href="/项目实战/Java 后端万用项目模板.html" class="nav-link">
  Java 后端万用项目模板
</a></li></ul></div></div><div class="nav-item"><a href="/知识碎片/" class="nav-link">
  知识碎片
</a></div><div class="nav-item"><a href="/编程导航/" class="nav-link">
  🔥 编程导航
</a></div><div class="nav-item"><a href="/产品服务/" class="nav-link">
  产品服务
</a></div><div class="nav-item"><a href="/作者/" class="nav-link">
  作者
</a></div> <a href="https://github.com/liyupi/codefather" target="_blank" rel="noopener noreferrer" class="repo-link">
    GitHub
    <span><svg xmlns="http://www.w3.org/2000/svg" aria-hidden="true" focusable="false" x="0px" y="0px" viewBox="0 0 100 100" width="15" height="15" class="icon outbound"><path fill="currentColor" d="M18.8,85.1h56l0,0c2.2,0,4-1.8,4-4v-32h-8v28h-48v-48h28v-8h-32l0,0c-2.2,0-4,1.8-4,4v56C14.8,83.3,16.6,85.1,18.8,85.1z"></path> <polygon fill="currentColor" points="45.7,48.7 51.3,54.3 77.2,28.5 77.2,37.2 85.2,37.2 85.2,14.9 62.8,14.9 62.8,22.9 71.5,22.9"></polygon></svg> <span class="sr-only">(opens new window)</span></span></a></nav></div></header> <div class="sidebar-mask"></div> <aside class="sidebar"><nav class="nav-links"><div class="nav-item"><a href="/学习路线/" class="nav-link">
  学习路线
</a></div><div class="nav-item"><div class="dropdown-wrapper"><button type="button" aria-label="自学之路" class="dropdown-title"><span class="title">自学之路</span> <span class="arrow down"></span></button> <button type="button" aria-label="自学之路" class="mobile-dropdown-title"><span class="title">自学之路</span> <span class="arrow right"></span></button> <ul class="nav-dropdown" style="display:none;"><li class="dropdown-item"><!----> <a href="/自学之路/#大学经历" class="nav-link">
  大学经历
</a></li><li class="dropdown-item"><!----> <a href="/自学之路/#求职经历" class="nav-link">
  求职经历
</a></li><li class="dropdown-item"><!----> <a href="/自学之路/#职场工作" class="nav-link">
  职场工作
</a></li><li class="dropdown-item"><!----> <a href="/自学之路/#创作经历" class="nav-link">
  创作经历
</a></li><li class="dropdown-item"><!----> <a href="/自学之路/#创业经历" class="nav-link">
  创业经历
</a></li><li class="dropdown-item"><!----> <a href="/自学之路/#生活日常" class="nav-link">
  生活日常
</a></li></ul></div></div><div class="nav-item"><div class="dropdown-wrapper"><button type="button" aria-label="编程分享" class="dropdown-title"><span class="title">编程分享</span> <span class="arrow down"></span></button> <button type="button" aria-label="编程分享" class="mobile-dropdown-title"><span class="title">编程分享</span> <span class="arrow right"></span></button> <ul class="nav-dropdown" style="display:none;"><li class="dropdown-item"><!----> <a href="/编程分享/#入门必看-学习路线" class="nav-link">
  入门必看-学习路线
</a></li><li class="dropdown-item"><!----> <a href="/编程分享/#学习指南" class="nav-link">
  学习指南
</a></li><li class="dropdown-item"><!----> <a href="/编程分享/#开发经验" class="nav-link">
  开发经验
</a></li><li class="dropdown-item"><!----> <a href="/编程分享/#求职经验" class="nav-link">
  求职经验
</a></li><li class="dropdown-item"><!----> <a href="/编程分享/#职场经验" class="nav-link">
  职场经验
</a></li><li class="dropdown-item"><!----> <a href="/编程分享/#技术分享" class="nav-link">
  技术分享
</a></li><li class="dropdown-item"><!----> <a href="/编程分享/#实战教程" class="nav-link">
  实战教程
</a></li><li class="dropdown-item"><!----> <a href="/编程分享/#其他" class="nav-link">
  其他
</a></li><li class="dropdown-item"><!----> <a href="/编程分享/#📚-项目教程" class="nav-link">
  项目教程
</a></li><li class="dropdown-item"><!----> <a href="/编程分享/#个人作品" class="nav-link">
  个人作品
</a></li><li class="dropdown-item"><!----> <a href="/编程分享/#🎁-编程资源" class="nav-link">
  编程资源
</a></li><li class="dropdown-item"><!----> <a href="/编程分享/#🌐-科技科普" class="nav-link">
  科技科普
</a></li></ul></div></div><div class="nav-item"><div class="dropdown-wrapper"><button type="button" aria-label="项目实战" class="dropdown-title"><span class="title">项目实战</span> <span class="arrow down"></span></button> <button type="button" aria-label="项目实战" class="mobile-dropdown-title"><span class="title">项目实战</span> <span class="arrow right"></span></button> <ul class="nav-dropdown" style="display:none;"><li class="dropdown-item"><!----> <a href="/项目实战/OJ 判题系统.html" class="nav-link">
  OJ 判题系统
</a></li><li class="dropdown-item"><!----> <a href="/项目实战/智能 BI 平台.html" class="nav-link">
  智能 BI 平台
</a></li><li class="dropdown-item"><!----> <a href="/项目实战/聚合搜索平台.html" class="nav-link">
  聚合搜索平台
</a></li><li class="dropdown-item"><!----> <a href="/项目实战/API 开放平台.html" class="nav-link">
  API 开放平台
</a></li><li class="dropdown-item"><!----> <a href="/项目实战/伙伴匹配系统.html" class="nav-link">
  伙伴匹配系统
</a></li><li class="dropdown-item"><!----> <a href="/项目实战/用户中心项目.html" class="nav-link">
  用户中心项目
</a></li><li class="dropdown-item"><!----> <a href="/项目实战/Java 后端万用项目模板.html" class="nav-link">
  Java 后端万用项目模板
</a></li></ul></div></div><div class="nav-item"><a href="/知识碎片/" class="nav-link">
  知识碎片
</a></div><div class="nav-item"><a href="/编程导航/" class="nav-link">
  🔥 编程导航
</a></div><div class="nav-item"><a href="/产品服务/" class="nav-link">
  产品服务
</a></div><div class="nav-item"><a href="/作者/" class="nav-link">
  作者
</a></div> <a href="https://github.com/liyupi/codefather" target="_blank" rel="noopener noreferrer" class="repo-link">
    GitHub
    <span><svg xmlns="http://www.w3.org/2000/svg" aria-hidden="true" focusable="false" x="0px" y="0px" viewBox="0 0 100 100" width="15" height="15" class="icon outbound"><path fill="currentColor" d="M18.8,85.1h56l0,0c2.2,0,4-1.8,4-4v-32h-8v28h-48v-48h28v-8h-32l0,0c-2.2,0-4,1.8-4,4v56C14.8,83.3,16.6,85.1,18.8,85.1z"></path> <polygon fill="currentColor" points="45.7,48.7 51.3,54.3 77.2,28.5 77.2,37.2 85.2,37.2 85.2,14.9 62.8,14.9 62.8,22.9 71.5,22.9"></polygon></svg> <span class="sr-only">(opens new window)</span></span></a></nav>  <ul class="sidebar-links"><li><a href="/%E8%87%AA%E5%AD%A6%E4%B9%8B%E8%B7%AF/" class="sidebar-link">鱼皮的编程学习之路</a></li><li><section class="sidebar-group collapsable depth-0"><p class="sidebar-heading"><span>大学经历</span> <span class="arrow right"></span></p> <!----></section></li><li><section class="sidebar-group collapsable depth-0"><p class="sidebar-heading"><span>求职经历</span> <span class="arrow right"></span></p> <!----></section></li><li><section class="sidebar-group collapsable depth-0"><p class="sidebar-heading open"><span>职场工作</span> <span class="arrow down"></span></p> <ul class="sidebar-links sidebar-group-items"><li><a href="/java%E5%BC%80%E5%8F%91%E8%80%85%E5%B7%A5%E4%BD%9C%E9%83%BD%E5%81%9A%E4%BB%80%E4%B9%88/" class="sidebar-link">Java 开发者工作都做什么？</a></li><li><a href="/%E6%88%91%E4%BB%8E%E5%AF%BC%E5%B8%88%E8%BA%AB%E4%B8%8A%E5%AD%A6%E5%88%B0%E4%BA%86%E4%BB%80%E4%B9%88/" aria-current="page" class="active sidebar-link">我从导师身上学到了什么？</a><ul class="sidebar-sub-headers"></ul></li><li><a href="/%E6%88%91%E5%9C%A8%E8%85%BE%E8%AE%AF%E7%9A%84%E8%AF%95%E7%94%A8%E6%9C%9F%E6%80%BB%E7%BB%93/" class="sidebar-link">我在腾讯的试用期总结</a></li><li><a href="/%E6%88%91%E5%9C%A8%E8%85%BE%E8%AE%AF%E5%92%8C%E5%AD%97%E8%8A%82%E7%9A%84%E5%B7%A5%E4%BD%9C%E6%84%9F%E5%8F%97/" class="sidebar-link">我在腾讯和字节的工作感受</a></li><li><a href="/%E6%88%91%E5%8D%87%E7%BA%A7%E4%B8%BA%E4%BA%91%E5%BC%80%E5%8F%91%E9%AB%98%E7%BA%A7%E5%B8%83%E9%81%93%E5%B8%88%E5%95%A6/" class="sidebar-link">我升级为云开发高级布道师啦</a></li><li><a href="/%E6%88%91%E5%85%A5%E8%81%8C%E4%B8%80%E5%B9%B4%E7%9A%84%E6%84%9F%E5%8F%97/" class="sidebar-link">我入职一年的感受</a></li><li><a href="/%E7%A6%BB%E5%BC%80%E5%AD%A6%E6%A0%A1%E5%90%8E-%E6%88%91%E6%89%8D%E6%98%8E%E7%99%BD/" class="sidebar-link">离开学校后，我才明白</a></li><li><a href="/%E6%88%91%E8%8E%B7%E5%BE%97%E4%BA%86%E8%85%BE%E8%AE%AF%E5%86%85%E9%83%A8%E7%AB%9E%E8%B5%9B%E7%AC%AC%E4%B8%80%E5%90%8D/" class="sidebar-link">我获得了腾讯内部竞赛第一名！</a></li><li><a href="/%E9%B1%BC%E7%9A%AE%E8%BF%99%E4%B8%AA%E6%9C%88%E5%B0%B1%E5%86%99%E4%BA%86%E8%BF%99%E7%82%B9%E5%84%BF%E4%BB%A3%E7%A0%81/" class="sidebar-link">鱼皮这个月就写了这点儿代码？</a></li><li><a href="/%E8%BF%99%E5%91%A8%E6%B2%A1%E5%86%99%E4%BB%A3%E7%A0%81-%E7%AB%9F%E7%84%B6%E5%9C%A8%E5%81%9A%E8%BF%99%E4%BB%B6%E4%BA%8B/" class="sidebar-link">这周没写代码，竟然在做这件事！</a></li><li><a href="/%E5%B7%A5%E4%BD%9C%E5%90%8E-%E6%88%91%E5%9D%9A%E6%8C%81%E4%BA%86%E5%A4%9A%E5%B9%B4%E7%9A%84%E4%B9%A0%E6%83%AF/" class="sidebar-link">工作后，我坚持了多年的习惯</a></li><li><a href="/%E8%BD%AC%E8%A1%8C%E5%A4%A7%E6%95%B0%E6%8D%AE1%E4%B8%AA%E6%9C%88-%E6%88%91%E9%BA%BB%E4%BA%86%E3%80%82%E3%80%82%E3%80%82/" class="sidebar-link">转行大数据 1 个月，我麻了。。。</a></li><li><a href="/%E5%A4%A7%E5%8E%82%E5%81%9A%E7%A8%8B%E5%BA%8F%E5%91%98%E4%B8%A4%E5%B9%B4%E5%8D%8A-%E6%88%91%E7%BB%88%E4%BA%8E%E5%AD%A6%E4%BC%9A%E4%BA%86%E3%80%82%E3%80%82%E3%80%82/" class="sidebar-link">大厂做程序员两年半，我终于学会了。。。</a></li><li><a href="/%E5%86%8D%E8%A7%81%E4%BA%86-%E8%85%BE%E8%AE%AF/" class="sidebar-link">再见了，腾讯！</a></li></ul></section></li><li><section class="sidebar-group collapsable depth-0"><p class="sidebar-heading"><span>创作经历</span> <span class="arrow right"></span></p> <!----></section></li><li><section class="sidebar-group collapsable depth-0"><p class="sidebar-heading"><span>创业经历</span> <span class="arrow right"></span></p> <!----></section></li><li><section class="sidebar-group collapsable depth-0"><p class="sidebar-heading"><span>生活日常</span> <span class="arrow right"></span></p> <!----></section></li></ul> </aside> <main class="page"> <div class="content"><div style="width:100%"><div class="theme-default-content custom-content content__default"><h1 id="我从导师身上学到了什么"><a href="#我从导师身上学到了什么" class="header-anchor">#</a> 我从导师身上学到了什么？</h1> <blockquote><p>本文作者：<a href="https://yuyuanweb.feishu.cn/wiki/Abldw5WkjidySxkKxU2cQdAtnah" target="_blank" rel="noopener noreferrer">程序员鱼皮<span><svg xmlns="http://www.w3.org/2000/svg" aria-hidden="true" focusable="false" x="0px" y="0px" viewBox="0 0 100 100" width="15" height="15" class="icon outbound"><path fill="currentColor" d="M18.8,85.1h56l0,0c2.2,0,4-1.8,4-4v-32h-8v28h-48v-48h28v-8h-32l0,0c-2.2,0-4,1.8-4,4v56C14.8,83.3,16.6,85.1,18.8,85.1z"></path> <polygon fill="currentColor" points="45.7,48.7 51.3,54.3 77.2,28.5 77.2,37.2 85.2,37.2 85.2,14.9 62.8,14.9 62.8,22.9 71.5,22.9"></polygon></svg> <span class="sr-only">(opens new window)</span></span></a></p> <p>本站地址：<a href="https://codefather.cn" target="_blank" rel="noopener noreferrer">https://codefather.cn<span><svg xmlns="http://www.w3.org/2000/svg" aria-hidden="true" focusable="false" x="0px" y="0px" viewBox="0 0 100 100" width="15" height="15" class="icon outbound"><path fill="currentColor" d="M18.8,85.1h56l0,0c2.2,0,4-1.8,4-4v-32h-8v28h-48v-48h28v-8h-32l0,0c-2.2,0-4,1.8-4,4v56C14.8,83.3,16.6,85.1,18.8,85.1z"></path> <polygon fill="currentColor" points="45.7,48.7 51.3,54.3 77.2,28.5 77.2,37.2 85.2,37.2 85.2,14.9 62.8,14.9 62.8,22.9 71.5,22.9"></polygon></svg> <span class="sr-only">(opens new window)</span></span></a></p></blockquote> <p>B 哥是我的导师，记得我刚进入腾讯实习的那天，是他出来接我。当时我有点怀疑，不会吧，不会吧，我的导师这么年轻？和我想象中的经验丰富的程序员的样子简直天壤之别。</p> <p><img alt="" data-src="https://pic.yupi.icu/5563/202311031018892.png" loading="lazy" class="lazy"></p> <blockquote><p>想象中的程序猿</p></blockquote> <p>后来确认了，他就是我的导师，怎么会这么年轻呢？惊讶之余，我也在期待他有没有什么过人之处，可以带我学习带我飞。</p> <p>直到现在认识 B 哥已经一年多了。老实说，刚开始我还并没有觉得他特别厉害，但是随着和他在工作中的合作交流，渐渐地加深了对他的了解，我才越来越发现，这个人是真的强啊！</p> <p><img alt="" data-src="https://pic.yupi.icu/5563/202311031018444.png" loading="lazy" class="lazy"></p> <p>有多强呢？</p> <p>B 哥本科毕业后直接工作，经历了四年的打拼，如今的他已经是腾讯的高级软件开发工程师和技术 owner，在上海有好车、买得起市区房，前段时间还和漂亮妹子领了结婚证，真是典型的人生赢家啊！关键还很帅，发量足，你说酸人不？</p> <p><img alt="" data-src="https://pic.yupi.icu/5563/202311031018298.jpeg" loading="lazy" class="lazy"></p> <blockquote><p>酸了</p></blockquote> <p>那么 B 哥是怎么做到年轻有为、有事业、有车房妹的呢？</p> <p>曾经 B 哥也和我讲过他的成长经历，但是今天我要分享的不是他的奋斗史，而是想和大家聊一聊，我作为他的徒弟，和他发生了那么多故事，从他的身上看到了哪些<strong>优秀的技术人应该具有的特质</strong>，也是我认为 B 哥牛逼的原因。</p> <hr> <h4 id="技术控"><a href="#技术控" class="header-anchor">#</a> 技术控</h4> <p>很多优秀的程序员应该都有对技术的追求，或是见多识广，或是深入研究，而且非常乐于将他们懂的技术分享给更多人。</p> <p>B 哥就是这样一位技术控，他刚毕业的时候，就通读了很多知名框架的源码，并且能够将他们清晰地讲出来。记得我刚进腾讯的时候，听的第一场技术分享就是 B 哥的《深入 Netty》，从分享中，能明显地感受到 B 哥对这个技术的深入理解和融会贯通，让我们这些小白也能深入浅出。而让我震惊的是，B 哥早在多年前，就已经了解并学习了这门技术。</p> <p>如果不是对技术有独特的追求，怎么能坚持这么多年去深入学习一门技术呢？真的很佩服。</p> <p><img alt="" data-src="https://pic.yupi.icu/5563/202311031018297.jpeg" loading="lazy" class="lazy"></p> <h4 id="全局观"><a href="#全局观" class="header-anchor">#</a> 全局观</h4> <p>我觉得跟 B 哥开会老有意思了。</p> <p>每次和 B 哥一起开会讨论技术方案，在我们其他人觉得这个方案没问题时，B 哥都会说一句：“我建议大家再好好想想，有没有什么遗漏的点，我觉得这里面可能有坑！”</p> <p>其实我当时心想：能有啥问题啊，多好的方案啊！</p> <p><img alt="" data-src="https://pic.yupi.icu/5563/202311031018262.jpeg" loading="lazy" class="lazy"></p> <blockquote><p>陷入沉思</p></blockquote> <p>然后 B 哥和大家就陷入了沉思，一会儿之后，果然 B 哥发现了这个方案的漏洞。</p> <p>原来，我们很多同学都只考虑这个方案对自己团队的项目是否适用，保证自己的负责的数据是否正确，而忽略了大家的项目是要紧密协作、相互配合的，视野太过局限。而如果将这个方案应用到完整的大项目中，各个团队的数据可能出现不一致，就是一个很大的问题！</p> <p>后来和 B 哥接触多了，发现 B 哥非常有全局观，总能站在一个更高、更全局的视角去考虑问题。在设计方案时，不仅考虑自己的负责的系统，还要想想这个方案会对其他团队的系统、以及整个大项目会有什么影响。因此，规避了很多的风险，也在各团队中树立了自己 “稳” 的形象。</p> <p>想成为优秀的技术人，一定要培养全局观，否则在负责大的项目时可能会力不从心。</p> <h4 id="慎行"><a href="#慎行" class="header-anchor">#</a> 慎行</h4> <p>B 哥做事非常小心谨慎，体现在多个方面。</p> <p>在设计方案时，B 哥会尽力验证方案的可行性，而不是凭直觉和过去的经验主观臆断。</p> <p>在编写代码时，B 哥坚守『 软件世界中的不信任原则 』，采用防御性编程，在每个可能的风险点加上异常处理机制，并利用监控告警即时发现线上问题。</p> <p>在测试时，B 哥会考虑到很多的极端情况，保证测试有效且完整。</p> <p>在提交代码时，B 哥会再次整体通读代码，并让我们其他同事参与代码审核，保证代码的质量。</p> <p>正是因为 B 哥的慎行，跟他一起做项目非常放心，几乎没有出过线上问题。唉，好久没有体验过改 bug 的紧张刺激感了。</p> <p><img alt="" data-src="https://pic.yupi.icu/5563/202311031018285.jpeg" loading="lazy" class="lazy"></p> <blockquote><p>平淡</p></blockquote> <h4 id="沟通"><a href="#沟通" class="header-anchor">#</a> 沟通</h4> <p>在企业中，高效沟通太重要了。</p> <p>记得有一次我遇到了一个问题，就拉了一位相关的业务负责人来讨论，然后这个负责人又拉了一个产品经理，然后这个产品经理又拉了一个开发，最后这个开发又找到了 B 哥，然后 B 哥又来找我。</p> <p><img alt="" data-src="https://pic.yupi.icu/5563/202311031018218.jpeg" loading="lazy" class="lazy"></p> <blockquote><p>禁止套娃</p></blockquote> <p>最后局面非常尴尬，其实是我自己沟通不当，没把问题描述清楚就去找别人帮忙了，浪费了大家的时间。在 B 哥的指导下，我整理了自己的思路，清晰地描述问题，然后直接找到相关负责人，打个电话问题就解决了。</p> <p>优秀的技术大佬，他们的沟通能力通常是很强的，他们能够用方便他人理解的方式来描述问题，比如提供文档、图片、甚至是视频等，拒绝无效沟通。而沟通能力也是需要实际锻炼才能提升的，每个人沟通和表达的方式也不同，还是要多和他人沟通，并且向沟通达人学习和积累经验。</p> <h4 id="架构能力"><a href="#架构能力" class="header-anchor">#</a> 架构能力</h4> <p>B 哥很会架构。就拿我们负责的这个项目来说，短短几个月，业务功能已经变得复杂不堪，而且请求量也已经增长了上千倍。</p> <p>但是 B 哥在设计程序架构时，用了很多的设计模式，使得程序变得易于扩展。即使业务增长很快，我们仍然可以轻松应对业务的扩展，每次新增一个功能也几乎不需要改动现有的代码，而是新增代码即可，不仅开发效率更高，风险也大大降低。</p> <p>B 哥在很早前就考虑到了业务增长的可能性，因此给项目采用微服务架构，针对部分性能瓶颈，采用可扩容设计，使得提升项目的性能和吞吐量变得易如反掌。请求量增长，咱加机器就行了！</p> <p><img alt="" data-src="https://pic.yupi.icu/5563/202311031018189.jpeg" loading="lazy" class="lazy"></p> <blockquote><p>轻轻松松</p></blockquote> <p>我问 B 哥：“你的架构能力是怎么提升的？”</p> <p>B 哥却告诉我，没有捷径。想要提升架构能力可不简单，不仅仅需要阅读大量的书籍，更重要的是在企业中不断参与项目实践，积累经验。</p> <h4 id="刨根问底"><a href="#刨根问底" class="header-anchor">#</a> 刨根问底</h4> <p>刚来实习的时候，对公司的很多技术框架、业务知识都不太懂，就经常去请教大佬们一些问题。但是每次只要成功地解决了问题，我就心满意足了，而不去关心问题背后的原因。</p> <p>比如有一次程序挂了，后来又恢复了，我就没去排查。</p> <p>然后 B 哥问我：“程序为什么挂了？”</p> <p>我根本没去查，所以也没办法回答 B 哥，就说了一句：“现在好了不就行了么？”</p> <p>B 哥语重心长地说：“程序出现问题不可怕，但是出现了问题不去追溯原因，下次再出现相同的问题，怎么办？尤其是偶发问题，是最致命的！”</p> <p>我觉得有理，就去分析日志，查出来是有一段时间数据库宕机了，就赶紧开心地告诉 B 哥。</p> <p>结果 B 哥很严肃：“数据库宕机不是小事！你知道数据库为什么宕机么？”</p> <p>我心想：我怎么知道啊！去问运维啊？</p> <p>后来我就去问运维，发现是由于数据库压力过大导致的宕机，就又屁颠屁颠地告诉 B 哥。</p> <p>B 哥依然严肃：“数据库压力为什么大？”</p> <p>我就又去分析日志，联合运维一起进行排查，最后发现是其他共库业务的慢查询导致的数据库请求阻塞。这才终于真相大白！于是我们将数据库独立迁移，很好地规避了日后的风险。</p> <p>这件事之后，我开始像 B 哥一样，遇到问题刨根问底，深挖问题的本质，我认为这个过程远远比解决问题更重要，让我得到了更大的成长。</p> <p><img alt="" data-src="https://pic.yupi.icu/5563/202311031018140.jpeg" loading="lazy" class="lazy"></p> <blockquote><p>打破砂锅问到底</p></blockquote> <h4 id="洁癖"><a href="#洁癖" class="header-anchor">#</a> 洁癖</h4> <p>有一次，我写了一坨自认为不错的代码，提交前把代码先交给 B 哥来检查一下。</p> <p>然后 B 哥看了一会儿，神情凝重，缓缓转过身问我。</p> <p>“你有洁癖么？”</p> <p>我当时一愣，随即明白 B 哥是在说我写的代码不够整洁。</p> <p>作为一个读过《代码整洁之道》的程序员，我很自信地回答：“当然有洁癖！”</p> <p><img alt="" data-src="https://pic.yupi.icu/5563/202311031018503.png" loading="lazy" class="lazy"></p> <p>B 哥就给我指出了代码中的问题，原来有一段逻辑我使用了多个 if-else，其实应该用设计模式来代替。</p> <p>我当时还振振有词：“我觉得这里直接用 if-else 就行了，省事儿啊！”</p> <p>B 哥：“不通过，改！”</p> <p>后来我乖乖地改了。果然之后这段代码增加了一些复杂的逻辑，如果用原先 if-else 的方式，代码的改动工作量非常大，还容易出错。而用了设计模式，程序变得更加可扩展、可维护。感谢 B 哥和代码洁癖！</p> <p>现在想想，当时的自己不过为偷懒找个理由罢了。</p> <h4 id="用户为本"><a href="#用户为本" class="header-anchor">#</a> 用户为本</h4> <p>B 哥非常宠用户，体现在两个方面。</p> <p>首先，他在和产品讨论需求和设计方案时一切从用户出发。只要对用户真的有帮助、能提高他们的使用体验，哪怕工作量多一点，只要性价比是合理的，B 哥也会去做。因此，我们的产品才能变得更加易用，得到用户的好评。</p> <p>此外，每次出现线上用户的问题和反馈，B 哥都会在第一时间积极地配合产品进行处理和引导。在帮助用户解决问题后，B 哥会记录这些问题发生的原因，并思考如何改进程序来防止类似问题的发生，以及如何进一步提升用户的体验。</p> <p>不仅仅是产品经理才要坚持 “用户为本” 的原则，优秀的技术人也会关心用户、倾听用户，而不是一门心思陷到代码中，只想着如何把代码写的又好看又简洁。</p> <p><img alt="" data-src="https://pic.yupi.icu/5563/202311031018386.jpeg" loading="lazy" class="lazy">倾听用户</p> <h4 id="执行力"><a href="#执行力" class="header-anchor">#</a> 执行力</h4> <p>B 哥做事一向快、狠、准，有着极强的执行力，只要答应过别人的事情都会按时完成。</p> <p>曾经我也一直觉得自己的执行力很强，但到了公司后，发现很多事情也喜欢拖延。比如答应给别人提供接口文档，结果后来就忘了，直到别人再三催促才草草写了几笔应付了事。</p> <p>我就很好奇 B 哥是如何做到 “雷厉风行” 的？</p> <p><img alt="" data-src="https://pic.yupi.icu/5563/202311031018810.jpeg" loading="lazy" class="lazy">好奇</p> <p>暗中观察 B 哥一段时间后，发现 B 哥始终保持对工作的热情和积极性，别人有事找他时，他能够站在对方的角度去考虑这个事情的紧急程度，然后将其进行记录，并和自己正要处理的其他事情按优先级进行排序。有时，B 哥还会设置一个定时提醒防止自己忘记。</p> <p>安排好要做的事后，B 哥就保持专注地一件一件去处理事务，并在完成后及时回复对方。即使有时实在太忙，也会提前告诉对方自己暂时无法处理，并给对方一些临时的处理方案。</p> <p>比起乱序地同时去处理多个事，B 哥的这种工作方式显得更加沉稳，这也是 B 哥能持续保持强执行力的原因吧。这么一想，很多技术大佬好像都是这样。</p> <h4 id="懒"><a href="#懒" class="header-anchor">#</a> 懒</h4> <p>刚刚夸完 B 哥执行力强，怎么又提到 “懒” 了呢？</p> <p>的确，无论是在处理业务还是具体到敲代码，B 哥都很懒。</p> <p><img alt="" data-src="https://pic.yupi.icu/5563/202311031018812.jpeg" loading="lazy" class="lazy"></p> <p>比如，由于网络等原因，我们的定时任务程序可能执行异常，就需要重新去执行一次。最开始都是我们人工去平台上点重新执行的，但次数多了就比较烦了。B 哥懒啊，就提出写个程序自动重跑执行失败的任务。后来我们再也不用人工去操作了，巴适得很！</p> <p>用 B 哥的话来说，所有人工的操作本质上都可以交给机器自动来完成，只是实现的难度不同罢了。如果编写一个小程序就能省去重复的工作，何乐而不为呢？</p> <p>其实，大部分优秀的技术人都很 “懒”。懒得写重复代码，我们就抽象、封装、组件化、复用；懒得去核对数据，就写任务定时自动去检测数据；懒得写代码，就使用一些脚手架、框架、低代码构建平台等。</p> <p>懒人推动世界。</p> <h4 id="画图能力"><a href="#画图能力" class="header-anchor">#</a> 画图能力</h4> <p>这里的画图不是指电脑上的 “画图程序”，而是指计算机相关的图片，比如系统架构图、部署图、UML 类图、时序图等。</p> <p>在认识 B 哥前啊，我觉得自己画图老厉害了，简直 “灵魂画手”，巧夺天工啊。</p> <p>直到后来看了 B 哥画的一些架构图、时序图、状态机图等等，我才发现自己真的是井底之蛙。B 哥画的图不仅大气干净，而且利用一些小技巧帮助大家更快地理解这些图要表达的意思，比如用不同的颜色来区分关键信息等。</p> <p>最佩服的是，B 哥画图不仅好看，还特别快。有时画图的速度甚至超过了我们去阅读理解图的速度，恐怖如斯！</p> <p>后来，在公司待久了，阅读了更多的技术方案，才发现优秀的画图能力是技术大牛的必备技能。很多复杂的系统和方案，我们无法单纯地用语言去表达，而使用图片的形式能够帮助大家理解。</p> <p>当然，想画好图本身并不容易，也是需要设计思维和经验的。因此，我们需要多多锻炼自己的画图能力。建议多看他人的图，模仿的多了，说不定就超越了呢？</p> <p><img alt="" data-src="https://pic.yupi.icu/5563/202311031018043.png" loading="lazy" class="lazy"></p> <blockquote><p>复杂的架构图</p></blockquote> <h4 id="引路人"><a href="#引路人" class="header-anchor">#</a> 引路人</h4> <p>我放弃保研，选择直接实习转正留在腾讯，很大一部分是因为 B 哥。</p> <p>B 哥可能不是技术最强的师傅，但一定是一位好师傅。别的不说，B 哥给新人非常多的发挥空间，让我自己去思考和设计方案来实现需求。在我遇到一些问题后，并不是直接帮助我解答，而是引导我自己去解决这个问题。</p> <p>B 哥非常信任新人，一些项目的技术选型、方案调研、架构设计，B 哥都能够交给我来做。因此，我非常有动力，也变得更加自主，在短时间内得到了很大的成长。</p> <p>B 哥还非常关心新人的成长，经常和我交流，给了我很多实用的意见，真的很感谢 B 哥。</p> <p>此外，B 哥还经常耐心地帮助其他同学解答问题，不是简简单单三言两语就完事儿，而是直到提问的同学彻底理解，方才罢休。</p> <p>优秀的技术人不仅要自身技术过硬，还应该懂得如何分享传授技术、带领他人进步，不断提升自己的影响力，甚至是成为某项技术的布道者。</p> <p><img alt="" data-src="https://pic.yupi.icu/5563/202311031018114.jpeg" loading="lazy" class="lazy"></p> <h4 id="爱生活"><a href="#爱生活" class="header-anchor">#</a> 爱生活</h4> <p>最后啊，分享 B 哥保持年轻的秘诀吧！</p> <p>B 哥不像大家想象中的程序员，双眼无神、眼圈发黑、脊背弯曲、格子衬衫、不爱运动。相反，B 哥非常热爱生活，每周会坚持健身、自己下厨做饭、养了一只布偶猫，还经常带妹子去各种地方玩！</p> <p><img alt="" data-src="https://pic.yupi.icu/5563/202311031018026.jpeg" loading="lazy" class="lazy"></p> <p>羡慕了，什么时候我能像 B 哥一样，平衡工作和生活，活的潇潇洒洒啊！</p> <hr> <p>其实，还要很多优秀的技术人需要具备的其他特质，比如追求极致、洞察力、决策力、创造力等等。学无止境，我们仍然需要不断努力和成长。</p> <p>最后，正好 B 哥的生日也在这个月，就提前祝 B 哥生日快乐叭！</p> <p>希望能够继续跟着 B 哥混啊，有朝一日青出于蓝而胜于蓝，我也能成长为一名优秀的技术人，成为别人的导师，帮助更多人进步！</p> <p><img alt="" data-src="https://pic.yupi.icu/5563/202311031018431.jpeg" loading="lazy" class="lazy"></p></div> <footer class="page-edit" style="margin:0;"><div class="edit-link"><a href="https://github.com/liyupi/codefather/edit/master/自学之路/职场工作/我从导师身上学到了什么？.md" target="_blank" rel="noopener noreferrer">完善页面</a> <span><svg xmlns="http://www.w3.org/2000/svg" aria-hidden="true" focusable="false" x="0px" y="0px" viewBox="0 0 100 100" width="15" height="15" class="icon outbound"><path fill="currentColor" d="M18.8,85.1h56l0,0c2.2,0,4-1.8,4-4v-32h-8v28h-48v-48h28v-8h-32l0,0c-2.2,0-4,1.8-4,4v56C14.8,83.3,16.6,85.1,18.8,85.1z"></path> <polygon fill="currentColor" points="45.7,48.7 51.3,54.3 77.2,28.5 77.2,37.2 85.2,37.2 85.2,14.9 62.8,14.9 62.8,22.9 71.5,22.9"></polygon></svg> <span class="sr-only">(opens new window)</span></span></div> <div class="last-updated"><span class="prefix">最近更新:</span> <span class="time">11/11/2023, 8:17:47 PM</span></div></footer> <!----></div> <div class="toc-container-sidebar"><div class="pos-box"><div class="icon-arrow"></div> <div class="scroll-box" style="max-height:86vh"><div style="font-weight:bold;">我从导师身上学到了什么？</div> <hr> <div class="toc-box"><!----></div></div></div></div></div>  <main class="footer"> <div class="copy-right"><span class="name"> 编程导航   |     </span> <a target="_blank" rel="noreferrer">
          
        </a></div></main></main> <aside class="page-sidebar"> <div class="page-side-toolbar"></div>  </aside></div><div class="global-ui"><!----></div></div>
    <script src="/assets/js/app.12ab4756.js" defer></script><script src="/assets/js/2.fd06b53e.js" defer></script><script src="/assets/js/517.289738f1.js" defer></script>
  </body>
</html>
